import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Esta clase representa a un boton del inicio principal, que hacen referencia a la puerta.
 * 
 * @author Miguel Martinez Aguilar
 * @version 18 de Mayo del 2013
 */
public class InicioP extends Boton
{
    // Declaracion de variables de instancia
    private int tipo;// es el tipo de boton.
    private Puerta puerta;// es la puerta que da acceso al juego.
    
    /**
     * Este es el metodo constructor del boton del inicio principal.
     * @param imagen: el nombre principal de las imagenes que este boton usara.
     * @param tipo: un numero que representa el tipo de boton que sera.
     * @param puerta: la puerta que da acceso al juego.
     */
    public InicioP(String imagen, int tipo, Puerta puerta)
    {
        super(imagen + "0.png",imagen + "1.png",imagen + "2.png");
        this.tipo = tipo;
        this.setImage(img[0]);
        this.puerta = puerta;
    }
    
    /**
     * Este metodo realiza lo que el boton debe hacer una vez precionado.
     */
    public void ejecuta()
    {
        if(tipo == 0)this.menuJuego();
        if(tipo == 1)this.informacion(true);
        if(tipo == 2)this.informacion(false);
        if(tipo == 3)this.salir();
        if(tipo == 4)this.borrarPanel();
    } 
    
    /**
     * Este metodo abre la informacion requerida (ya sea ayuda o creditos).
     * @param quien: boleano que indica que informacion se desea consultar (ayuda o creditos).
     */
    public void informacion(boolean quien)
    {
        ScrollWorld mundo = super.getWorld();
        World escena = super.getWorld();
        puerta.quitarBotones();
        Informacion info = new Informacion(mundo,puerta,quien);
        escena.addObject(info,350,218);
        info.prepara();
    } 
    
    /**
     * Este metodo saca al usuario del menu principal y cierra la puerta
     */
    public void salir()
    {
        puerta.cerrarPuerta();
    } 
    
    /**
     * Este metodo abre el menu de juego
     */
    public void menuJuego()
    {
        ScrollWorld mundo = super.getWorld();
        puerta.quitarBotones();
        MenuJuego menu = new MenuJuego(puerta,null);
        mundo.addObject(menu,125,250);
        menu.prepara();
    } 
    
    /**
     * Este metodo borra el panel de juego
     */
    public void borrarPanel()
    {
        puerta.borraPanel();
    } 
}
